From b89a3b9321b81c3f53f90944851563fb23491e32 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 28 Jan 2011 21:31:34 +0900 Subject: [PATCH] (ftfont_spec_pattern): Check each extra property value. --- src/ftfont.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/ftfont.c b/src/ftfont.c index 9584422fc06..a20f2013e5a 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -749,7 +749,10 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots key = XCAR (XCAR (extra)), val = XCDR (XCAR (extra)); if (EQ (key, QCdpi)) - dpi = XINT (val); + { + if (INTEGERP (val)) + dpi = XINT (val); + } else if (EQ (key, QClang)) { if (! langset) @@ -769,12 +772,15 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots } else if (EQ (key, QCotf)) { - *otspec = ftfont_get_open_type_spec (val); - if (! *otspec) - return NULL; - strcat (otlayout, "otlayout:"); - OTF_TAG_STR ((*otspec)->script_tag, otlayout + 9); - script = (*otspec)->script; + if (CONSP (val)) + { + *otspec = ftfont_get_open_type_spec (val); + if (! *otspec) + return NULL; + strcat (otlayout, "otlayout:"); + OTF_TAG_STR ((*otspec)->script_tag, otlayout + 9); + script = (*otspec)->script; + } } else if (EQ (key, QCscript)) script = val; -- 2.30.2